cmake_minimum_required(VERSION 3.30)
project(GateServer)

set(CMAKE_CXX_STANDARD 14)
include_directories(./include ./grpc_pb )
include_directories(D:/Depend/boost_1_86_0)
include_directories(D:/Depend/cpp-depend/hiredis/include)
include_directories(D:/Depend/cpp-depend/mysql-connector-c++/include)

include_directories(D:/Depend/cpp-depend/grpc/third_party/re2)
include_directories(D:/Depend/cpp-depend/grpc/third_party/address_sorting/include)
include_directories(D:/Depend/cpp-depend/grpc/third_party/abseil-cpp)
include_directories(D:/Depend/cpp-depend/grpc/third_party/protobuf/src)
include_directories(D:/Depend/cpp-depend/grpc/include)

#set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
add_executable(GateServer main.cpp
        grpc_pb/message.pb.cc
        grpc_pb/message.pb.h
        grpc_pb/message.grpc.pb.cc
        grpc_pb/message.grpc.pb.h

        include/ConfigMng.h
        include/inicpp.hpp
        include/const.h
        include/CServer.h
        include/HttpConnection.h
        include/LogicSystem.h
        include/Singleton.h
        include/VerifyGrpcClient.h
        include/IOServicePool.h
        include/RedisMng.h
        include/MySQLDao.h

        src/ConfigMng.cpp
        src/CServer.cpp
        src/HttpConnection.cpp
        src/LogicSystem.cpp
        src/VerifyGrpcClient.cpp
        src/IOServicePool.cpp
        src/RedisMng.cpp
        src/MySQLDao.cpp
)

target_link_directories(GateServer PRIVATE D:/Depend/boost_1_86_0/stage/lib)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/hiredis/lib)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/mysql-connector-c++/lib64/debug/vs14)

target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/re2/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/types/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/synchronization/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/status/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/random/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/flags/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/debugging/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/container/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/hash/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/boringssl-with-bazel/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/numeric/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/time/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/base/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/abseil-cpp/absl/strings/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/protobuf/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/zlib/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/Debug)
target_link_directories(GateServer PRIVATE D:/Depend/cpp-depend/grpc/vs_build/third_party/cares/cares/lib/Debug)

target_link_libraries(GateServer ws2_32 mswsock)
target_link_libraries(GateServer hiredisd.lib mysqlcppconn.lib mysqlcppconnx.lib)
target_link_libraries(GateServer libprotobufd.lib
        gpr.lib
        grpc.lib
        grpc++.lib
        grpc++_reflection.lib
        address_sorting.lib
        ws2_32.lib
        cares.lib
        zlibstaticd.lib
        upb.lib
        ssl.lib
        crypto.lib
        absl_bad_any_cast_impl.lib
        absl_bad_optional_access.lib
        absl_bad_variant_access.lib
        absl_base.lib
        absl_city.lib
        absl_civil_time.lib
        absl_cord.lib
        absl_debugging_internal.lib
        absl_demangle_internal.lib
        absl_examine_stack.lib
        absl_exponential_biased.lib
        absl_failure_signal_handler.lib
        absl_flags.lib
        absl_flags_config.lib
        absl_flags_internal.lib
        absl_flags_marshalling.lib
        absl_flags_parse.lib
        absl_flags_program_name.lib
        absl_flags_usage.lib
        absl_flags_usage_internal.lib
        absl_graphcycles_internal.lib
        absl_hash.lib
        absl_hashtablez_sampler.lib
        absl_int128.lib
        absl_leak_check.lib
        absl_leak_check_disable.lib
        absl_log_severity.lib
        absl_malloc_internal.lib
        absl_periodic_sampler.lib
        absl_random_distributions.lib
        absl_random_internal_distribution_test_util.lib
        absl_random_internal_pool_urbg.lib
        absl_random_internal_randen.lib
        absl_random_internal_randen_hwaes.lib
        absl_random_internal_randen_hwaes_impl.lib
        absl_random_internal_randen_slow.lib
        absl_random_internal_seed_material.lib
        absl_random_seed_gen_exception.lib
        absl_random_seed_sequences.lib
        absl_raw_hash_set.lib
        absl_raw_logging_internal.lib
        absl_scoped_set_env.lib
        absl_spinlock_wait.lib
        absl_stacktrace.lib
        absl_status.lib
        absl_strings.lib
        absl_strings_internal.lib
        absl_str_format_internal.lib
        absl_symbolize.lib
        absl_synchronization.lib
        absl_throw_delegate.lib
        absl_time.lib
        absl_time_zone.lib
        absl_statusor.lib
        re2.lib)

